﻿using System;
using System.IO;
using System.Runtime.Serialization;

namespace _027_使用DataContractSerializer类进行序列化
{
    class Program
    {

        static void Main(string[] args)
        {

            string 文件名称 = "zoomlacms.xml";

            if (File.Exists(文件名称))
                File.Delete(文件名称);

            //序列化
            using (FileStream 序列化操作=new FileStream(文件名称,FileMode.OpenOrCreate))
            {
                DataContractSerializer 文档操作 = new DataContractSerializer(typeof(学生表));
                学生表 序列 = new 学生表
                {
                    ID = 1003,
                    Name = "发哥",
                    City = "北京"
                };
                文档操作.WriteObject(序列化操作, 序列);
            }

            //反序列化
            using (FileStream 反序列化=new FileStream(文件名称,FileMode.Open))
            {
                DataContractSerializer 文本操作 = new DataContractSerializer(typeof(学生表));
                学生表 随便用不客气 = 文本操作.ReadObject(反序列化) as 学生表;
                //输出属性值
                Console.WriteLine($"ID:{随便用不客气.ID}\nName:{随便用不客气.Name}\nCity:{随便用不客气.City}");
            }

        }
    }

    public class 学生表
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public string  City { get; set; }
    }
}
